﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QProg
{
	class Program
	{
		static void Main(string[] args)
		{
			var s = 0;
			Console.WriteLine("Введите значение k:");
			var m = Convert.ToInt32(Console.ReadLine());
			Console.WriteLine("Введите значение n: (k>n!!!)");
			var n = Convert.ToInt32(Console.ReadLine());
			Console.WriteLine("Ввeдите значение m1 (m1<n)");
			var m1 = Convert.ToInt32(Console.ReadLine());

			var D = Generator.Generate(out s, m, n);
			var Size = s;
			var C = Generator.GenerateC(Size);
			Size = s;
			var A = Generator.GenerateA(m1, n);
			var B = Generator.GenerateB(m1);
			var dmin = Generator.GenerateDmin(n, -1000);
			var dmax = Generator.GenerateDmax(n, 1000);

			QProgUsual.Solve(D, C, A, dmin, dmax, Size);

			QProgGoldCut.Solve(D, C, A, dmin, dmax, Size);

			QProgApproxDerivative.Solve(D, C, A, dmin, dmax, Size);

			QProgApproxDerivativeGoldCut.Solve(D, C, A, dmin, dmax, Size);


		}
	}
}
